<template>
  <el-checkbox-group
    :value="value"
    @input="handleModelInput"
    @change="handleChange"
    size="mini"
    >
    <el-checkbox
      v-for="(opt,i) in fld.options"
      :key="i"
      :label="opt.value"
      v-bind="opt"
      size="mini"
      >{{opt.text}}</el-checkbox>
  </el-checkbox-group>
</template>
<script type="text/javascript">
  define(['vue'],function(vue){
    return vue.component('comp-checkbox-group',{
      // props:['fld','value'],
      props : {
        fld :{required:false,},
        value :{required:false,default:function(){
          return [];
        }},
      },
      template: template,
      methods:{
        handleModelInput :function(val){
          // this.myValue = val;
          this.$emit("input", val);

          //向总线提交事件，在mainson弹窗中，需要通过总线，改变cureentRow中的某个字段的值，用来显示在字表中
          //比如在弹框中选择了多个爱好后，爱好Id改变的同时，必须在子表中显示对应爱好的中文字段
          //构造需要传递的option
          var opt = [];
          for (var i=0;this.fld.options[i];i++) {
            var v = this.fld.options[i].value;
            if(val.indexOf(v)==-1) continue;
            opt.push(this.fld.options[i]);
          }
          this.$bus.$emit('selectChanged',this.fld.name,opt);
        },
        //val为更新后的值
        handleChange :function(val){
          // var key = `${this.fld.name}:change`;
          // if(!this.$root.callbacks[key]) return;
          // this.$root.callbacks[key].apply(this,arguments);
        },
      },
      mounted : function() {
        // if(this.value='') this.value=[];
        if(!Array.isArray(this.value)) {
          // if(!this.value) this.
          console.warn(`comp-checkbox-group组件(${this.fld.name})的默认值必须是数组,当前值为`,this.value);
        }
      }
    });
  });
</script>